#ifndef RAWIMAGE_H
#define RAWIMAGE_H

#include <QImage>
#include <QMap>

class RawImage : public QImage
{
public:
	RawImage(const QString &strRaw);
	void setWindowing(int width, int center);
	void setGamma(int gamma);
	const QMap<int, int> histogramData();
	void loadRaw(const QString &strRaw);
	const QList<int> profileData(const QList<QPoint> &) const;
	void windowing(int &iWWMax, int &iWWMin, int &iWidth, int &iCenter) const;

private:
	void applyProcess();

private:
	int m_iWindowingMin, m_iWindowingMax;
	int m_iWWidth;
	int m_iWCenter;
	float m_fGamma;
	int m_iWidth;
	int m_iHeight;
	QVector<short> m_vec;
	QMap<int, int> m_histogramData;
};

#endif // RAWIMAGE_H
